package com.vip.utils;

import java.util.List;

/**
 * Created by cloudy.xie on 16/12/8.
 */
public interface IDoubleKeyMap<K1, K2, V> {

    /**
     * 长度
     *
     * @return 长度
     */
    int size();

    /**
     * map是否为空
     *
     * @return 空 为 true
     */
    boolean isEmpty();

    boolean containKey(K1 key1, K2 key2);

    boolean containKey(Object key);

    boolean containKey1(K1 key1);

    boolean containKey2(K2 key2);

    V get(K1 key1, K2 key2);

//    List<V> getKey(Object key);

    List<V> getKey1(K1 key1);

    List<V> getKey2(K2 key2);

    V put(K1 key1, K2 key2, V value);

    //如果只要一个key 没必要用双keymap 直接使用hashmap就行
//    public V putKey1(K1 key1,V value);
//    public V putKey2(K2 key2, V value);

    void remove(K1 key1, K2 key2);
//    void remove(Object key);

    void removeKey1(K1 key1);

    void removeKey2(K2 key2);

    void clear();
}
